FACHHOCHSCHULE AALEN

Hochschule für Technik und Wirtschaft

 

FACHBEREICH OPTIK UND MECHATRONIK

STUDIENGANG MECHATRONIK

 

Studienarbeit SS 2004

 

Thema:

 

Bioelektronischer Puls-Sensor

 

von

Matthias Adam und Matthias Bross

 

Betreuung

Prof. Dipl.-Phys. Dipl.-Ing. Edmund R. Schiessle

 

 

 

 

Inhaltsverzeichnis

 

1     Anlagenverzeichnis. 2

2     Einführung. 3

2.1       Aufgabenstellung.. 3

2.2       Anwendungsbereiche der Schaltung.. 3

2.3       Rahmenbedingungen.. 4

3     Möglichkeiten der Sensierung. 5

3.1       Sensorprinzip.. 5

3.2       Die Fingerspitze zur Messung des Puls. 5

4     Beschreibung der Schaltung. 7

4.1       Pulsabnehmer. 7

4.2       Pegelanpassung.. 10

4.3       Auswertung.. 12

4.4       Anzeige. 15

5     Beschreibung der Software. 18

5.1       Funktion des Programms. 18

5.1.1       Externer Interrupt 19

5.1.2       Timer – Funktion. 20

5.1.3       Funktion „Berechnung“ 21

5.1.4       Funktion „Ausgabe“ 22

5.2       Flussdiagramm... 23

5.2.1       Flussdiagramm 1 (Gesamtablauf): 24

5.2.2       Flussdiagramm 2 (Ausgabe – Funktion): 25

6     Leiterplattenentwicklung. 26

6.1       Layoutentwicklung mit Orcad Capture. 26

7     Spannungsversorgung. 28

8     Inbetriebnahme der Schaltung. 29

9     Mechanischer Einbau der Platine. 33

10       Normen VDE.. 34

11       Schlusswort 35

12       Danksagung. 36

 

 

1         Anlagenverzeichnis

 

Anlage A: Gesamtschaltplan

 

Anlage B: Bauteilliste

 

Anlage C: Oszilloskopbilder

 

Anlage D: Quellcode des Programms

 

Anlage E: Layout und Bestückungsplan

 

Anlage F : Zeichnung der Fingerklammer

 

Anlage G : Datenblätter  ( nur auf CD – ROM )

 

2         Einführung

 

Im Rahmen einer Studienarbeit im 8. Semester im Studiengang Mechatronik haben wir eine Schaltung zur bioelektronische Pulsmessung mit Hilfe von optoelektronischen Bauelementen realisiert.

Die Aufgabenstellung für dieses Projekt haben wir von Herrn Prof. Dipl.-Phys. Dipl.-Ing. Edmund R. Schiessle erhalten, der  auch in den folgenden Wochen das Projekt betreute.

 

2.1      Aufgabenstellung

Die Hauptaufgabe bestand zuerst darin eine Schaltung aufzubauen, die die von  optoelektronischen Bauelementen aufgenommenen Pulsschläge entsprechend aufbereitet, um sie auf dem Oszilloskop sichtbar darzustellen.

Nachdem dieser Aspekt erledigt war erweiterten wir die Schaltung nach Absprache mit Herrn Schiessle um einen Logik- und Anzeigeblock , um die Anzahl der Pulsschläge pro Minute für den Anwender sinnvoll darzustellen.

Der Logikblock wurde mit Hilfe eines Mikrocontrollers der Firma Atmel realisiert,  für den ein Programm zur Auswertung der einzelnen Impulse  geschrieben werden musste.

Die Spannungsversorgung der Schaltung erfolgt über ein externes Labornetzgerät.

Für die Leuchtdiode und den Phototransistor (optoelektronischer Sensor) war eine Halterung zu konstruieren, um diese bestmöglich an einem Körperteil zu fixieren.

Die Gesamtschaltung wurde auf einer selbstentworfenen Platine aufgebaut und zu Vorführzwecken aus Gründen des Berührungsschutzes zwischen zwei Plexiglasplatten montiert.

Neben der Realisierung der Gesamtschaltung war es Ziel dieses Projekts, theoretisches Wissen zu vertiefen und anzuwenden.

Auch  die Planung und Organisation des  Gesamtaufwandes spielte hierbei eine wesentliche Rolle.

Zur Entwicklung der Schaltung war die Einarbeitung in Capture (OrCad, Layout Plus, etc.) nötig.

Zur Erstellung der Software (Programm) für den Mikrocontroller haben wir auf die Programmiersprache ANSI C und einen Compiler der Firma Keil zurückgegriffen.

 

2.2      Anwendungsbereiche der Schaltung

Die Aufgabe der Schaltung besteht im Wesentlichen darin, Pulsschläge optisch aufzunehmen, sie auszuwerten und auf einer 7-Segmentanzeige in Pulsschläge pro Minute auszugeben. Die Messzeit beträgt dabei jedoch keine Minute,  sondern nur wenige Sekunden (abhängig von der Pulsfrequenz).

Der Aufbau kann sowohl im Klinikbereich, sowie auch zu Hause oder beim Sport zur Überwachung der Pulsfrequenz benutzt werden.

Die Bedienung des Gerätes ist kinderleicht. Die Messung des Pulses beginnt sofot nach Einschalten des Gerätes und sie wird zyklisch aktualisiert.

 

2.3      Rahmenbedingungen

Die Studienarbeit musste in den Einrichtungen der Fachhochschule  Aalen durchgeführt werden.

Der Zeitraum zur Bearbeitung des Projektes umfasste das Sommersemester 2004 bis zum Abgabetermin, den 14. Juni 2004.

Den Abschluss der Studienarbeit bildet eine Präsentation am 21. Juni 2004.

 

3         Möglichkeiten der Sensierung

3.1      Sensorprinzip

Ein optisches Sensierverfahren macht sich die Tatsache zu nutze, dass sich die Transmission bzw. die Reflektivität des menschlichen Fingers durch das Ansteigen des Blutdrucks im Finger ändert. Das Herz pumpt während des Herzschlags Blut in das Gefäßsystem, erhöht damit einerseits den Blutdruck und damit natürlich auch die Blutmenge in den Gefäßen. Ein optischer Sensor detektiert also die relative Schwankung der Blutmenge im Finger.

 

Eine durchblutete Körperstelle wird von einer Lichtquelle durchleuchtet und das restliche Licht von einem Fototransistor aufgenommen. Dieses Licht verändert seine Stärke, da die beleuchtete Hautstelle im Rhythmus des Herzschlages schubweise mit Blut versorgt wird und dadurch einmal ein größerer und einmal ein kleinerer Teil des eingestrahlten Lichts verschluckt wird.  Der Fototransistor misst also das schubweise Fließen des Blutes durch die Körperstelle.

 

3.2      Die Fingerspitze zur Messung des Puls

Aus verschiedenen Versuchsreihen haben sich schnell die bestgeeignetsten Körperteile für eine optische Pulsmessung herauskristallisiert. Zu ihnen gehören neben den Ohrläppchen die Fingerspitzen. Vor allem am Daumen und Zeigefinger lässt sich der Puls sehr gut messen, da diese Bereiche stark durchblutet werden. Auch die Temperatur der Gliedmaßen spielt für den Erfolg der Messung eine wichtige Rolle. Kalte Finger bedeuten nämlich, dass die Blutzirkulation nicht gerade gut funktioniert und somit ein Messergebnis nur schwer zu erlangen ist.

Wir haben für unser Projekt den Daumen als Körperteil gewählt, da wir an ihm die besten Signale erhielten.

Zwei grundsätzlich verschiedene Lösungsansätze der optischen Messung sind möglich:

 

Ø      Messung des Durchlichts durch den kleinen Finger:

Eine Lichtquelle (z.B. eine LED) durchstrahlt den kleinen Finger.

Das transmittierte Licht wird mit einem geeigneten Fotoempfänger gemessen.

 

 

 

(Die Messung ist auch seitlich möglich)

 

 

Ø      Messung des Reflexlichts durch den Daumen:

Eine Lichtquelle (z.B. eine LED) beleuchtet den Daumen.

Das vom Daumen (Fingernagel) reflektierte Licht wird mit einem geeigneten Fotoempfänger gemessen.

 

 

 

Unser Aufbau beschäftigt sich im weiteren mit der Reflexlichtmethode, da die von uns gewählten Bauteile (LED und Fototransistor) mit diesem Prinzip bei uns selbst am besten harmonieren.

Testreihen mit verschiedenen Versuchspersonen haben jedoch gezeigt, dass die Durchlichtmethode am kleinen Finger allgemein am besten funktioniert. Bei manchen Personen konnte mit der Reflexmethode überhaupt kein Puls festgestellt werden.

Aus diesem Grund haben wir für jede Methode einen professorischen Halter konstruiert, welche die Diode und den Fototransistor aufnehmen und am Körperteil fixieren.

 

4         Beschreibung der Schaltung

Die komplette Schaltung des Pulsmessers setzt sich grundsätzlich aus vier Teilschaltungen zusammen. Jede Teilschaltung wurde separat entworfen und schließlich zu einem Komplettsystem zusammengesetzt.

Der so entstandene Anfangsentwurf wurde im Laufe der Weiterentwicklung ständig optimiert und entsprechend den gestellten Anforderungen angepasst.

 

Die vier Teilschaltungen können wie folgt beschrieben werden:

 

Ø      Pulsabnehmer

Ø      Pegelanpassung

Ø      Auswertung

Ø      Anzeige

 

In den folgenden Kapiteln werden sie separat dargestellt und näher erklärt.

 

Die Spannungsversorgung der Schaltung erfolgt durch ein Labornetzgerät, da zum Betrieb drei verschiedene Versorgungsspannungen nötig sind. Der Aufbau eines eigenen Netzgerätes wäre einerseits realisierbar gewesen, andererseits wurde er jedoch aus Zeitgründen eingestellt.

 

4.1      Pulsabnehmer

Der Schaltungsteil „Pulsabnehmer“ hat die Aufgabe die geringen, durch Helligkeitsschwankungen hervorgerufenen Spannungsänderungen zu verstärken und sie zur anschließenden Weiterverarbeitung aufzubereiten. 

Der Fototransistor mit dem Arbeitswiderstand R2 wird über den Vorwiderstand der Leuchtdiode mit einer konstanten Spannung von ca. 1,6V versorgt. Helligkeitsänderungen, hervorgerufen durch die Blutzirkulation, beim Durchleuchten eines Körperteils machen den Fotowiderstand mehr oder weniger leitend. Bei stärkerer Beleuchtung wird der Fototransistor leitender und umgekehrt.

Hierbei auftretende Spannungsänderungen werden dem folgenden nichtinvertierenden Verstärker über C5 zugeführt. Der Kondensator C5 und sein Entladewiderstand R11 dienen dabei der gleichstrommäßigen Entkopplung.

Das Ausgangssignal von U1D wird einem Tschebyscheff – Tiefpass 4. Ordnung zugeführt, der eine Grenzfrequenz von ca. 25Hz hat.

Anschließend wird das Signal durch einen invertierenden Verstärker noch weiter verstärkt. Die Verstärkung dieser Stufe lässt sich über ein Potentiometer stufenlos zwischen 10 und 100 einstellen.

Dieses Signal wird nun der Nächsten Teilschaltung zugeführt.

 

 

Blockschaltbild:

 

 

 

 

 

 

 

 

 


Schaltung:

 

 

4.2      Pegelanpassung

Da die Ausgangsspannung des Pulsabnehmers eine Wechselspannung mit Impulsen ist, muss sie für die Weiterverarbeitung am Mikrocontroller aufbereitet werden.

Die Ausgangsspannung der Teilschaltung Pulsabnehmer hat je nach Empfindlichkeit des gemessenen Pulsschlages Spannungsspitzen bis zu 15V, sie hat aber auch negative Anteile. Ideale Pegel für den Mikrokontroller sind 0V und 5V. Die Wechselspannung muss also in ein Rechtecksignal mit 0V und 5V moduliert werden (Impulsformer).

Um die Flanken des Pulsschlages auszuwerten haben wir aus einem Operationsverstärker einen Schwellwertschalter (Schmitt – Trigger) aufgebaut, dessen Schaltschwellen bei +/- 0,5V liegen. Für die Wechselspannung bedeutet dies, dass alle Spannungswerte oberhalb von 0,5V  zu 15V (+Uss)  werden und alle Spannungswerte unterhalb von  -0,5V  -15V (–Uss) werden.

Aus diesem Rechtecksignal kann jetzt leicht eine Rechtecksignal mit 0V- und 5V-Pegel gemacht werden:

 

Ø      Mit Hilfe einer Diode in Reihe werden aus –15V  0V.

 

Ø      Eine Z-Diode mit Vorwiderstand begrenzen 15V  zu 4,7V.

 

Ø      Der Widerstand R15 wirkt als Pull – Down – Widerstand für die anschließende Schaltung.

 

Um dem Anwender seinen Puls optisch darzustellen verwenden wir eine zusätzliche Leuchtdiode. So weiß er genau, ob die Klammer mit dem Fototransistor und der Leuchtdiode richtig an seinem Finger platziert ist und Pulssignale eintreffen.

Da der Schmitt – Trigger den nötigen Strom für die Leuchtdiode nicht liefern kann, haben wir einen zusätzlichen Transistor spendiert, der als Schalter arbeitet und die Leuchtdiode kann somit über einen Vorwiderstand direkt an 5V Versorgungsspannung betrieben werden.

 

Berechnungsformeln für den Schmitt – Trigger:

 

Ue ein   =  -  R12/R13 * Ua min

 

Ue aus   =  -  R12/R13 * Ua max

 

DUe  =  R12/R13 * (Ua max – Ua min)

 

 

Bockschaltbild:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Schaltung:

 

4.3      Auswertung

Die Auswertung der aufgenommenen Impulse erfolgt mit Hilfe eines Mikrocontrollers der Firma Atmel. Der Mikrocontroller hat eine 80C51 – Architektur. Die genaue Bezeichnung ist AT89C51RB2.

Wir haben diesen Controller vor allem aus drei Gründen ausgewählt:

 

1.      Der Mikrocontroller hat integrierten RAM

2.      Der Mikrocontroller verfügt über genügend Programmspeicher

3.      Der Programmspeicher ist in Flash – Technologie (wiederbeschreibar)

 

Die technischen Hauptmerkmale dieses Mikrocontrollers sind:

 

Ø      Vier 8-Bit Ein-/Ausgabe Ports

Ø      Drei 16-Bit Timer

Ø      16k Byte Flash-Speicher

Ø      1k Byte RAM

Ø      40MHz Taktfrequenz

Ø      9 Interrupt - Quellen mit vier Prioritätsstufen

Ø      SPI Schnittstelle

Ø      Serielle Schnittstelle (UART)

Ø      Watchdog Timer

 

Die Aufgabe des Mikrocontrollers besteht darin, Impulse über einen externen Interrupt – Eingang aufzunehmen. Nachdem der erste Impuls empfangen wurde startet der Controller einen Timer. Der Timer läuft genau solange, bis exakt 5 Impulse detektiert wurden. Anschließend wird der Timer gestoppt und die verstrichenen Zeit mit der Anzahl der Pulse verrechnet. Da die Zeit für eine Inkrementierung des Timers bekannt ist (abhängig von der Taktfrequenz), kann somit auf die Pulsschläge pro Minute geschlossen werden. Zuletzt gibt der Controller das Ergebnis an die Anzeigeeinheit weiter, die dieses für den Benutzer graphisch darstellt.

Um all diese Vorgänge abzuarbeiten benötigt der Mikrocontroller ein Programm, welches von uns erstellt wurde. Die genaue Funktionsweise soll jedoch im Kapitel „Programmierung des Mikrocontrollers“ erklärt werden.

Die einzige Beschaltung, die ein Controller benötigt sind ein Quarz und zwei Keramikkondensatoren, die als Taktsignal fungieren.

Da der Mikrocontroller über eine serielle Schnittstelle verfügt haben wir die Schaltung um einen seriellen Schnittstellentreiber von Maxim (Max232) erweitert, um das Programm auf den Controller zu übertragen. Auf diese Weise kann man sich die Anschaffung eines teueren Programmiergerätes sparen.

Der Datentransfer geschieht lediglich durch zwei Leitungen und einen Massebezug. Eine Leitung wird als Receive (RxD), die andere als Transmit (TxD) bezeichnet.

Über die Receive – Leitung empfängt der Mikrocontroller Daten von außen (z.B. PC) und über die Transmit – Leitung sendet der Mikrocontroller Daten nach außen (z.B. PC).

Der Anschluss an den PC wird über eine gängige serielle COM – Schnittstelle  und ein Nullmodemkabel gemacht. Der 9 – polige D – SUB – Stecker auf unserer Platine musste dafür entsprechend belegt werden.

 

 

Blockschaltbild:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Schaltung:

 

 

4.4      Anzeige

Die Anzeigeeinheit besteht aus drei 8-Bit Schieberegistern und drei 7-Segmentanzeigen. Die Ausgänge eines Schieberegisters sind immer direkt mit den LEDs einer 7-Segmentanzeige verknüpft, d.h. eine 7-Segmentanzeige ist für die Hunderter-Ziffer, eine für die Zehner-Ziffer und eine für die Einer-Ziffer der Anzahl der Pulsschläge pro Minute zuständig.

Jedes Schieberegister hat einen Dateneingang (Data), einen Takteingang (Clock), einen Übergabeeingang (Strobe) und acht Ausgänge (Q1 – Q8). Ein weiterer Ausgang Qs hat direkte Verbindung mit Q8 und kann zur Datenübergabe an ein anderes Bauteil benutzt werden.

Da nur ein Ausgansport des Controller zur Datenausgabe benutzt wird, werden die Daten mit jedem Clock innerhalb des Schieberegisters weitergeschoben. Verbindet man den Qs - Ausgang des ersten Schieberegisters mit dem Dateneingang des nächsten, so kann man die Anzeige kaskadieren. Die Daten werden also  aus dem ersten Schieberegister hinaus und in das nächste hineingeschoben, usw..

Da jedes Schieberegister vor seinem Ausgang ein Latch geschaltet hat werden die Daten nicht sofort an der 7-Segmentanzeige ausgegeben, sondern sie sind nur innerhalb des Bauteils präsent. Erst nachdem ein Impuls über den Strobe-Eingang erfolgt ist, werden die Daten direkt an den Ausgängen Q1 – Q8 für die 7-Segmentanzeigen bereitgestellt. Die Anzeige leuchtet auf und gibt die Anzahl der Pulsschläge pro Minute auf der dreistelligen 7-Segmentanzeige aus.

Mit drei Anzeigen können die Zahlen 0 bis 999 dargestellt werden.  Dies ist vollkommen ausreichend, da ein Puls von über 220 kaum erreicht wird.

Beim Aufbau der Anzeige ist vor allem wichtig, dass man die Daten  zuerst in das Schieberegister, das mit der Anzeige für die Einer – Ziffer verbunden ist schiebt, da man sonst das Ergebnis in spiegelbildlicher Anordnung erhält.


 

 

Blockschaltbild:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Schaltung:

 

 

 

5         Beschreibung der Software

Damit der Mikrocontroller korrekt oder überhaupt arbeitet benötigt er ein Programm, welches er zyklisch abarbeitet.

Der Quellcode für unsere Software musste speziell für die Anwendung als Pulsmesser in der Sprache ANSI C erstellt werden.

Die Programmiersprache ANSI C haben wir anstelle von Assembler gewählt, da die Berechnungsformel zur Bestimmung der Pulsschläge pro Minute nur mit sehr großem Aufwand in Assembler zu erstellen gewesen wäre.

Unser Programm beschäftigt sich hauptsächlich mit dem Umgang externer Interrupts, Timerfunktionen und einer Ausgabefunktion. Die Rechenfunktion ist relativ primitiv, da Multiplikationen und Divisionen in C kein Problem sind.

 

 

5.1      Funktion des Programms

In diesem Abschnitt beschreiben wir das gesamte Programm, um die komplette Funktion besser zu verdeutlichen.

Die Funktionsweise und das Zusammenspiel der einzelnen Unterfunktionen sollen jedoch in den folgenden Kapiteln näher beschrieben werden.

Für die verschiedenen Aufgaben haben wir einzelne Funktionen geschrieben, die bei Bedarf vom Hauptprogramm aufgerufen werden. So bleibt das Gesamtprogramm klar strukturiert und überschaubar.

 

 

Beschreibung:

 

Wie in jedem Programm befindet sich am Beginn ein Programmkopf, der allgemeine Informationen zum Projekt, dem Datum und den Autoren enthält.

Danach folgt das Einbinden der Header – Datei (# include...), wodurch Variablen feste Speicheradressen zugewiesen werden (special functin register SFR).

Jetzt folgt die Deklaration von Konstanten und globalen Variablen.

Dann werden die Unterfunktionen „Berechnung“ und „Ausgabe“, die Initialisierung von Timer und externem Interrupt, sowie ihre Funktionen selbst deklariert.

Erst nachdem all dies geschehen ist beginnt das eigentliche Hauptprogramm. In diesem  wird zunächst der externe Interrupt initialisiert, d.h. es werden bestimmte Parameter gesetzt und die Variable „Pulsschlag“ wird auf Null gesetzt.

Als nächstes wird das Unterprogramm „Ausgabe“ aufgerufen, um den Inhalt von Pulsschlag (derzeit noch „000“) auf der Anzeige auszugeben. Ist das Unterprogramm „Ausgabe“ vollständig abgearbeitet, erfolgt der Rücksprung ins Hauptprogramm und die „000“ bleibt an der Anzeige bestehen.

Im Hauptprogramm wird nun auf das Eintreffen des ersten externen Interrupts gewartet. Nachdem dieser eingetroffen ist springt das Programm in die Interrupt – Subroutine und erhöht dort die globale Variable, in der die Anzahl der eintreffenden Pulsschläge festgehalten wird um eins. Anschließend wird die Timerfunktion initialisiert, wodurch auch hier bestimmte Parameter festgelegt werden. Der Timer wird danach gestartet.

Die Initialisierung und der Start des Timers wird jedoch nur durchgeführt, wenn es sich um den ersten Pulsschlag (= erster externer Interrupt) handelt. Falls der Timer schon läuft, d.h. es sich nicht mehr um den ersten Pulsschlag handelt wird diese Option übersprungen.

Anschließend wartet das Programm auf den nächsten Interrupt und falls dieser eintrifft wird die Variable für die Anzahl der Pulsschläge inkrementiert.

Nachdem eine vordefinierte Anzahl von Pulsschlägen (5 Stück) eingetroffen ist wird der Timer angehalten und die Unterfunktion „Berechnung“ aufgerufen. Hier wird aus dem Inhalt des Timers (=Zeit) und der vordefinierten Anzahl der Pulsschläge über einen Dreisatz auf die Anzahl der Pulsschläge pro Minute geschlossen.

Nun erfolgt wiederum der Rücksprung ins Hauptprogramm und die „Ausgabe“ – Funktion wird aufgerufen. In dieser wird durch eine geschickte Schleifenkonstruktion die berechnete Anzahl der Pulsschläge pro Minute seriell über einen einzigen Port an die Anzeigeeinheit ausgegeben.

Schließlich gelangt man ins Hauptprogramm zurück, wo alles von neuem beginnt.

Wie oben schon versprochen werden nun in den folgenden Kapiteln die Funktionen „externer Interrupt“, „Timer“, „Berechnung“ und „Ausgabe“ ausführlicher erklärt.

 

5.1.1       Externer Interrupt

Zur schnellen Reaktion auf Prozessereignisse bietet ein Mikrocontroller die Möglichkeit Programmunterbrechungen, sog. Interrupts, einzusetzen. Im Gegensatz zum Unterprogrammaufruf erfolgt der Aufruf des Interrupt – Unterprogramms somit in der Regel asynchron zum eigentlichen Programmablauf, zu einem nichtvorhersagbaren Zeitpunkt.

Bei unserem Projekt bot sich ein externer Interrupt für die Erfassung der Pulsschläge an.

Externe Interrupts werden über doppeltbelegte Ports in den Mikrocontroller geführt.

Der von uns ausgewählte Controller besitzt zwei externe Interrupts, von denen wir Interrupt 1 gewählt haben (beliebig).

In unserem Programm wird zuerst die Interrupt – Funktion deklariert.

Danach muss der externe Interrupt initialisiert werden. Bei der  Initialisierung werden bestimmte Parameter (= Bits im Interrupt SFRs ) gesetzt:

 

Ø      Triggerung auf steigende oder fallende Flanke

Ø      Freigabe des Interrupts

Ø      Globale Freigabe aller Interrupts

 

In der Interrupt – Subroutine stehen nun die eigentlich abzuarbeitenden Befehle.

In unserem Fall werden hier die externen Ereignisse gezählt und der Timer initialisiert und gestartet, falls es sich um den ersten, ankommenden Impuls handelt.

 

Blockschaltbild:

(allgemeine Darstellung)

 

 

 

5.1.2       Timer – Funktion

Der Mikrocontroller von Atmel besitzt drei integrierte Hardware – Timer. Dies sind spezielle Timerbaugruppen, die unabhängig von der Zentraleinheit Zeit - oder Ereigniszählfunktionen ohne Belastung des Steuer – und Rechenwerks umsetzen können. Nach Ablauf einer eingestellten Verzögerungszeit wird der Sprung in die Timer – Unterfunktion ausgelöst, in der weitere Aufgaben abgearbeitet werden.

Der Vorteil liegt insbesondere darin, dass innerhalb der Verzögerungszeit andere Steuer – und Rechenaufgaben abgearbeitet werden können.

Alternativ lässt sich ein Timer auch softwaretechnisch durch verschachtelte Programmschleifen realisieren.

In unserem Programm haben wir den Timer 0 als Zeitbasis für die Bestimmung der Anzahl der Pulsschläge pro Minute verwendet.

Zuerst muss wiederum die Timer Funktion zu Beginn des Programms deklariert werden. Danach muss die Timer - Funktion initialisiert werden. Bei der  Initialisierung werden bestimmte Parameter (= Bits im Timer SFRs ) gesetzt:

 

Ø      Setzen des Timer High – Byte und Low – Byte

Ø      Timer soll inkrementiert werden

Ø      Zurücksetzen des Überlauf – Flags

Ø      Timer 0 freigeben

Ø      Timer 0 starten

Ø      Globale Freigabe alle Interrupts

 

Das setzen des High – und Low – Bytes des Timers ist von besonderer Bedeutung, da es sich bei allen Timern des Mikrocontrollers um 16 – Bit – Timern handelt. Seine Architektur erlaubt ihm jedoch nur 8 - Bit - breite Datenworte zu verarbeiten. Aus diesem Grund werden die 16 Bit in ein High – und ein Low – Byte aufgeteilt und zusammengesetzt.

Wir setzen das High – Byte auf 0xC6 und das Low – Byte auf 0x62. Der Timer zählt somit hexadezimal von 0xC662 auf 0xFFFF hoch. Der Wert 0xC662 mag auf den ersten Blick etwas willkürlich gewählt sein. Bei einer Taktfrequenz von 12MHz benötigt der Zähler jedoch ziemlich genau 15ms um einmal hochzuzählen. Diese Zeit kann jetzt bequem als Zeitbasis für weitere Berechnungen verwendet werden. Prinzipiell würde jede beliebige Zeit für weitere Berechnungen genügen, der Controller hat jedoch enorme Probleme mit Fließkommazahlen zu rechnen.

Hat der Controller den Wert 0xFFFF erreicht wird eine Zählvariable (LONG_ZAEHLER) inkrementiert und das High – und – Low – Byte erneut gesetzt.

Nachdem der Controller seine vordefinierte Anzahl an Impulsen (5 Stück) über den externen Interrupt erhalten hat wird der Timer gestoppt und die Anzahl der Überläufe steht in der Variablen „LONG_ZAEHLER“ zur Verfügung. Das heisst, dass die Zeit  „LONG_ZAEHLER“ * 15ms für die vordefinierte Anzahl an Pulsschlägen verstrichen ist.

 

5.1.3       Funktion „Berechnung“

Die Berechnungsfunktion ist eine sehr einfache und kurze Funktion. Sie hat die Aufgabe aus der Anzahl der Pulsschläge und der dabei verstrichenen Zeit die Anzahl der Pulsschläge pro Minute zu berechnen. Die Berechnungsformel ist ein ganz einfacher Dreisatz, der die Anzahl der Pulsschläge auf 60s bezieht.

Zur Berechnung werden nur globale Variablen benötigt, die somit nicht übergeben werden müssen. Global bedeutet, dass diese Variablen auch in anderen Programmteilen und Funktionen verwendet werden.

In der Berechnungsformel wurde jedoch ein kleiner Trick angewandt. Da der Mikrocontroller mit keinen Fließkommazahlen rechnen kann war es nötig die Zahlen um entsprechende Zehnerpotenzen zu erhöhen.

Dies hat einen weiteren Vorteil. Bei der Division entstehen nämlich als Ergebnis nur ganze Zahlen. Der Controller schneidet alles, was nach dem Komma stehen würde ab.

Beispiel: Teilt man 5 durch 2, so erhält man als Ergebnis 2 anstelle von 2,5.

Der Fehler ist in diesem Beispiel sehr groß. Sind jedoch die Zahlen, die man teilen möchte sehr groß, tritt der Fehler erst in der dritten oder vierten Stelle nach dem Komma auf. Der so entstandenen Fehler ist für unsere Berechnung keineswegs mehr relevant.

 

5.1.4       Funktion „Ausgabe“

Aufgabe dieser Funktion ist es Ergebnisse (Pulsschläge pro Minute) an die drei Schieberegister und damit an die 7-Segmentanzeigen seriell weiterzugeben. Neben globalen  Variablen besitzt diese Funktion auch lokale Variablen, die nur innerhalb der Funktion verwendet werden können.

Eine besondere lokale Variable ist „Wert“. Sie ist ein Array, in dem die Bitkombinationen für die Ziffern 0 bis 9 hexadezimal hinterlegt sind. Soll beispielsweise die Zahl 3 ausgegeben werden, wird auf die entsprechende Bitkombination aus dem Array zugegriffen. Der Zugriff ist ganz einfach, da die Zahlen in aufsteigender Reihenfolge hinterlegt sind.

 

Die „Ausgabe“ – Funktion arbeitet mit 2 ineinandergeschachtelten FOR – Schleifen.

Die äußere FOR – Schleife wird dreimal abgearbeitet (Hunderter, Zehner, Einer) und die innere FOR – Schleife achtmal (8 Bit der Zahl).

Der Ablauf kann folgendermaßen beschrieben werden:

Wir befinden uns im ersten Durchlauf der äußeren Schleife (Ausgabe der Hunderter – Stelle).

Die Anzahl der Pulsschläge wird zuerst durch Hundert geteilt. Das Ergebnis ist eine Zahl mit zwei Nachkommastellen. Da der Controller wie oben beschrieben die Nachkommastellen abschneidet, bleibt eine ganze Zahl übrig. Diese Zahl wird dazu verwendet, um die richtige Kombination aus dem Array zu holen

Beispiel:        187 : 100 = 1   à  Array[1]  à  0x90 (Kombination für „1“)

Damit der Rest (Nachkommastellen) nicht verloren geht, wird das Ergebnis wieder mit Hundert multipliziert und vom ursprünglichen Wert abgezogen. Dieses Zwischenergebnis  wird später für die Zehnerstelle verwendet.

Beispiel:        1 * 100 = 100 ;          187 – 100 = 87(Ergebnis für die Zehner – Stelle)

Jetzt erfolgt der Übergang in die innere FOR – Schleife, die nun achtmal durchlaufen wird. Bei jedem Durchlauf wird die Bitkombination um eine Stelle nach links (Richtung  MSB) geschoben, das einzelne Carry - Bit am  Port ausgegeben und ein Taktsignal für das Schieberegister generiert, damit das Bit übernommen wird.

Nachdem dieser Vorgang beendet ist befinden wir uns im zweiten Durchlauf der äußeren FOR – Schleife (Ausgabe der Zehner – Stelle). Der einzige Unterschied zur Hunderter –Stelle liegt im Divisor, der anstatt Hundert Zehn ist. Gleiches gilt für die Ausgabe der Einer – Stelle.

Wenn die Schleifenkonstruktion abgearbeitet worden ist, wird schließlich ein Strobe – Signal ausgegeben, was zur Ausgabe des kompletten Datenpakets aus den Schieberegistern zu den 7 –Segmentanzeigen dient.

 

5.2      Flussdiagramm

Im Flussdiagramm soll die Programmstruktur noch einmal übersichtlich dargestellt werden.

Flussdiagramm 1 beschreibt das Gesamtprogramm, Flussdiagramm 2 das Unterprogramm „Ausgabe“.

Das Unterprogramm für die Funktion Ausgabe wurde aus Gründen der Übersichtlichkeit getrennt vom Gesamtablauf dargestellt.

Für das Unterprogramm „Berechnung“ wurde kein separates Flussdiagramm erstellt, da es aus nur einer Zeile besteht, und deshalb verständlich genug ist.

Die Timerfunktion hingegen wurde bereits in das Gesamtprogramm eingearbeitet, da sonst die Gesamtfunktion nicht wirklich zu verstehen gewesen wäre.

 

5.2.1       Flussdiagramm 1 (Gesamtablauf):

 

 


 



5.2.2       Flussdiagramm 2 (Ausgabe – Funktion):


 

 


6         Leiterplattenentwicklung

Das Layout der Platine wurde mit der Software „Layout Plus“, einem Programm von Cadence erstellt. Es basiert auf einer Netzliste, deren Schaltplan mit „Orcad Capture“ kreiert worden ist.

Beide Programme haben wir in einem kleinen Workshop in der Vorlesung Elektronikentwicklung bei Herrn Wolf kennen gelernt. Bei Fragen und Problemen rund um das Softwarepaket standen uns auch jederzeit die Mitarbeiter des EDA – Zentrums beiseite.

Das Layout für die komplette Schaltung mit Analog – und Digitalteil wurde auf eine handelsübliche Europlatine (160mm x 100mm) übertragen.

Beim Layout kam es uns vor allem darauf an, dass die vier verschiedenen Teilschaltungen räumlich voneinander getrennt, jedoch in sich zusammengehörend auf der Platine aufgebaut wurden. Grund dafür ist hauptsächlich die Vermeidung von Störeinflüssen durch lange Leitungen.

Den Mikrokontroller haben wir in einer Ecke der Platine platziert und den Quarz, sowie die Kondensatoren für das Taktsignal ganz dicht daneben. Auch der serielle Schnittstellentreiber befindet sich aus Sicherheitsgründen nahe am Controller.

Alle Anschlüsse ( Klemmen und Stecker ) befinden sich am Rand der Platine, um die Anschlusskabel nicht über die Platine führen zu müssen.

 

6.1      Layoutentwicklung mit Orcad Capture

Bevor die Layoutentwicklung mit Layout Plus stattfinden kann, muss eine gewisse Vorarbeit geleistet werden.

Zuerst muss ein Stromlaufplan in „Capture“ erstellt werden. Hierzu ist es nötig passende Bauteile aus Bibliotheken auszuwählen und  Footprints zu vergeben. Aus diesen Informationen wird anschließend die Netzliste erstellt.

Jetzt kann mit der eigentlichen Erstellung des Layouts begonnen werden.

Zu Beginn wird die Netzliste in das Programm „Layout Plus“ eingelesen. Nun folgt das Verbinden der Footprints. Nachdem die Größe für die Platine ausgewählt worden ist, werden die einzelnen Bauteile mit den Footprints auf der Platine platziert. Jetzt können die Verbindungen der Footprints geroutet werden. Es ist darauf zu achten, dass möglichst wenige Durchkontaktierungen entstehen. Nachdem die Platine geroutet ist sollten offenen Verbindungen mit Hilfe des Stromlaufplans nochmals überprüft werden.

Der letzte Schritt ist die Herstellung der Platine.

Die einzelnen Layer der Platine werden auf Pergamentpapier ausgedruckt (spiegelverkehrt), um die Platine damit zu belichten. Die Belichtungszeit beträgt ca. 3 Minuten. Nach der Belichtung kann sie in einem Bad geätzt  werden. Beim Ätzen sind folgende Sicherheitsvorkehrungen zu treffen:

 

Ø      Tragen einer Schutzbrille

Ø      Säurefeste Handschuhe

Ø      Säurefeste Schürze

 

Nach dem Ätzbad muss die Platine zuerst gereinigt und dann mit Lötlack beschichtet werden.

Wenn der Lack getrocknet ist folgt das Bohren für Durchkontaktierungen und die Montage der Bauteile selbst. Bei der Bestückung der Bauteile sollte man darauf achten, dass man mit den niedrigsten (Widerstände und Dioden) beginnt, und sich bis zu den höchsten (Stecker , IC - Sockel, etc.) durcharbeitet.

 

7         Spannungsversorgung

Die Spannungsversorgung der Platine wird durch ein externes Labornetzgerät mit den Festspannungen +15V, -15V, +5V und GND sichergestellt. Das externe Labor Netzteil hat den Vorteil, dass man sich nicht weiter um VDE – Vorschriften zu kümmern braucht (Berührungsschutz, usw. ). Außerdem ist die einwandfreie Funktion sichergestellt.

Aus zeitlichen Gründen wäre der Aufbau eines eigenen, stabilisierten Netzgerätes mit drei Festspannungen, das sich auf der selben Platine, wie der Rest der Schaltung befindet nicht realistisch gewesen.

Die Spannungsversorgung wird bequem über eine kleine Klemmenreihe mit einer vieradrigen Leitung an die Schaltung angeschlossen.

 

8         Inbetriebnahme der Schaltung

Nachdem die Leiterplatte vollständig aufgebaut worden ist kann sie in Betrieb genommen werden.

Die Inbetriebnahme soll zunächst ohne ICs und Mikrocontroller durchgeführt werden (alle Sockel leer).

Zunächst wird die Schaltung auf Sicht mit dem Stromlaufplan überprüft. Es soll vermieden werden, dass Leitungen zu falschen Pins geführt worden sind.

Danach werden alle Festspannungen an der Platine angeschlossen. Nun wird mit dem Oszilloskop die Spannungsversorgung der einzelnen ICs überprüft. Das Oszilloskop hat den Vorteil, dass man auch kurzzeitige Spannungseinbrüche feststellen kann.

Falls alles in Ordnung ist, können nun die beiden ICs mit den vier integrierten Operationsverstärkern für den Analogteil der Schaltung eingesetzt werden.

Jetzt erfolgt die Überprüfung der Funktion des Pulsabnehmers.

Die Leuchtdiode und der Fototransistor werden an einen Finger (Daumen) angesetzt. Mit dem Tastkopf des Oszilloskops wird das Signal vor und nach dem Kondensator C5 betrachtet. Falls hier noch nichts erkannt wird ist es sinnvoll das Signal hinter dem ersten OP (U1D) anzusehen. Es ist bereits um den Faktor 600 verstärkt. Hier lässt sich der Pulsschlag schon erahnen. Er ist jedoch noch etwas unkenntlich, da das Signal von  sehr vielen höherfrequenten Schwingungen und Störungen überlagert wird.

Nach dem Tschebyscheff – Tiefpass 4. Ordnung (U1B und U1A) kann man den Pulsschlag schon deutlich erkennen. Seine Amplitude ist jedoch noch ziemlich gering. Diese wird über den invertierenden Verstärker (U1C) deutlich erhöht. Die Verstärkung kann zusätzlich über das Potentiometer P1 eingestellt werden.

Am Ausgang des Schmitt  - Triggers (U6A) soll aus dem Pulsschlag ein Rechtecksignal mit +/- 15V entstehen. Das Signal vor und nach dem Schwellwertschalter sollte hierzu zusammen mit zwei Tastköpfen auf dem Oszilloskop dargestellt werden. Die anschließende Pegelanpassung muss aus +/- 15V eine Spannung von + 5V und 0V machen.

Im Anhang der Dokumentation werden die Signale, die an den verschiedenen Punkten der Schaltung mit dem Oszilloskop  abgegriffen werden noch einmal bildlich dargestellt dargestellt.

Falls der Analogteil der Gesamtschaltung funktioniert können alle restlichen ICs eingesetzt werden. Zuletzt sollte der Mikrocontroller in seinen Sockel gedrückt werden, da er gegen statische Aufladung sehr empfindlich ist und leicht zerstört werden kann.

Über die serielle Schnittstelle kann nun mit einem Nullmodemkabel und dem Softwaretool  „Flip v 2.2.2“ das Programm auf den Mikrocontroller übertragen werden. Das Programm wird also in den Flash – Speicher des Controllers geladen.

Die verwendete Version des Softwaretools Atmel – Flip 2.2.2 kann kostenlos von der Homepage der Firma Atmel heruntergeladen werden.

Zuerst wird die Software gestartet und der verwendete Mikrocontroller selektiert.

Anschließend kann das Software-File, welches bereits im Hex-Format vorliegen muss, eingelesen werden.

 

 


 

 


Danach muss die verwendete Schnittstelle, in unserem Falle die RS232-Schnittstelle, und die entsprechende Baudrate für die Übertragung angegeben werden. Die Baudrate ist die tatsächlich von der Schnittstelle an ihren Ein- oder Ausgängen verwendete Datenrate, d.h. die Anzahl der empfangenen bzw. gesendeten Bits pro Sekunde. In unserem Fall funktioniert eine maximale Baudrate von 9600. Um mit einer höheren Baudrate Daten übertragen zu können müsste der Mikrocontroller die übertragenen Daten schneller verarbeiten können. Dafür würde man allerdings einen Schwingquarz mit einer höheren Frequenz als 12 MHz benötigen. 

 

 


 

 


Wenn man anschließend den Button „Connect“ betätigt, versucht der PC mit dem Mikrocontroller zu kommunizieren und so eine Verbindung aufzubauen.

 

Wurde die Verbindung erfolgreich erkannt, kann der Flashspeicher je nach Wunsch gelöscht, überprüft, beschrieben und die geschriebenen Daten verifiziert werden. Ist dies geschehen, so kann über den Button „Start Applikation“ das Programm auf dem Mikrocontroller gestartet werden.

 


 

 


Dabei ist allerdings zu beachten, dass bei einem Reset des Mikrocontrollers oder bei Abschalten der Versorgungsspannung das Programm zwar noch im Flash-Speicher des Controllers liegt, er es aber nicht mehr selbstständig starten kann. Hierzu muss wiederum eine Verbindung zum PC hergestellt werden und erneut der Button „Start Applikation“ gedrückt werden. Dies ist nötig, da das Programm nach einem Reset nicht automatisch zu der Adresse 0x0000 springt. Der Mikrocontroller befindet sich nämlich nach dem Beschreiben des Flash-Speichers im so genannten Bootloaderbereich, in dem er auf weitere Übertragungen wartet. Das Betätigen des Buttons „Start Applikation“ bewirkt nur, dass man manuell den Bootloader überspringt.

Um zu umgehen, dass bei jedem neuen Programmablauf der Bootloader manuell übersprungen werden muss, kann im Tool „Atmel-Flip“ im Hauptauswahlbildschirm vor BLJB das Häkchen entfernt werden. Dadurch wird das Bootloader-Jump-Bit aktiviert, das automatisch beim Einschalten der Versorgungsspannung einen Sprung aus dem Bootloader heraus zur Adresse 0x0000 bewirkt, an der das Programm beginnt. Allerdings kann dieses Häkchen nach einmaligem Entfernen nicht mehr so ohne weiteres zurückgesetzt werden. Dies bedeutet, dass kein neues Programm mehr in den Flash-Speicher geladen werden kann. Dieser Schritt sollte daher erst bei voll-funktionsfähiger Software nach ausgiebiger Fehlersuche getätigt werden.

Ein erneutes Beschreiben des Controllers wäre zwar theoretisch noch möglich, allerdings wäre dafür ein spezieller Pegelwandler mit drei Sende- bzw. Empfangsleitungen nötig. Da man aber davon ausgehen kann, dass die fertige Schaltung in ihrer Funktion nicht mehr geändert wird, wurde auf diese relativ komplizierte Interfaceschaltung verzichtet.

 

9         Mechanischer Einbau der Platine

Die Platine wird mittels Kunststoffdistanzen zwischen zwei Plexiglasplatten fixiert. Eine Platte fungiert als Boden, die andere als obere Abdeckung. Der Einbau gleicht somit eher einem „Testboard“, als einem fertigen Gerät. Durch die Plexiglasplatten kann die Platine selbst nach dem Einbau von allen Seiten betrachtet werden. Seitlich bleibt die Konstruktion rundherum offen.

An der Unterseite sind vier Füße befestigt, um dem Aufbau einen sicheren Stand zu gewähren.

Da sich die Anzeigeeinheit direkt auf dem Board befindet wäre es nötig gewesen eine entsprechende Aussparung einzufräsen. Dies hat sich jedoch durch die Transparenz der Plexiglasplatten ebenfalls erledigt.

Ein weiterer Zweck der Platten ist der primäre Berührungsschutz der Schaltung. Natürlich ist es möglich die Platine mutwillig zu berühren, da sie seitlich offen ist.

Diesen Fall schließen wir jedoch aus, da auf der Platine ausschließlich mit Niederspannungen gearbeitet wird.

Die beiden Plexiglasplatten sollen den gesamten Aufbau jedoch auch vor äußeren mechanischen Einwirkungen schützen.

Die Fertigung der Cover führten wir in Eigenregie durch.

 

10   Normen VDE

Schutz sowohl gegen direktes, als auch gegen indirektes Berühren muss auch in diesem Fall gewährleistet sein. Daher tritt die VDE 0100 Teil 410:1997-01 in Kraft. Sie besagt, dass man den einfachen Fehlerfall mit Schutzmaßnahmen gegen Spannung, Strom oder Kapazitäten so begrenzen muss, dass beim Berühren aktiver Teile keine Gefahr für Personen entstehen kann. Das bedeutet, dass ein Schutz gegen direktes und indirektes Berühren gewährleistet werden muss.

Dies ist beim Schutz durch SELV (safety extra-low voltage) und unter bestimmten Bedingungen durch PELV (protective extra-low voltage) jeweils mit 25V AC (Effektivwert) bzw. 60V DC und beim Schutz durch Begrenzung von Beharrungsberührungsstrom und Ladung der Fall.

Unter einem Stromkreis ist die Gesamtheit der elektrischen Betriebsmittel einer Anlage zu verstehen, die von dem selben Speisepunkt versorgt wird und durch dieselbe Überstromschutzeinrichtung geschützt wird.

Für uns wäre das der Fall, wenn wir unsere Schaltung direkt an die elektrische Netzversorgung angeschlossen hätten.

(Siehe dazu auch im Kapitel Spannungsversorgung).

 

11   Schlusswort

Als Ergebnis der Studienarbeit entstand eine Schaltung zur optischen Pulsmessung mittels eines Fototransistors und einer Leuchtdiode.

Im Rahmen der Studienarbeit wurde die Schaltung um eine Auswerteeinheit mit Mikrocontroller und eine Anzeigeeinheit mit 7–Segment-Anzeigen erweitert.

Für die den Mikrocontroller musste ein Programm zur Verarbeitung der empfangenen Pulssignale erstellt werden. Außerdem war eine Anpassung der Signalpegel zwischen dem Analogteil zur Pulsmessung und dem Digitalteil mit Mikrocontroller nötig.

Die hier beschriebene Erweiterung der Schaltung wurde angestrebt, um dem Anwender eine Möglichkeit zu geben seinen Pulsschlag pro Minute bequem von einer Anzeige abzulesen. Ohne die Auswerteeinheit und Anzeigeeinheit müsste der Anwender seien Pulsschlag auf dem Oszilloskop betrachten und über die eingestellte Zeitbasis auf die Anzahl der Pulsschläge pro Minute hochrechnen.

All diese Aufgaben werden nun vom Mikrokontroller übernommen.

Vor allem aus Zeitgründen wurde auf den Aufbau eines eigenen Netzteils verzichtet, und stattdessen die Anzeigeeinheit mit Mikrocontroller entwickelt. Nicht zuletzt war die Integration eines Controllers und das Erstellen eines Programms eigenes Interesse, was uns enorm in Zeitdruck versetzte.

Die fehlende Zeit hat sich daher im Platinenlayout und im Einbau der Platine niedergeschlagen. Auch die Klammer für den Finger, in der die Leuchtdiode und der Fototransistor eingebaut ist konnte nicht nach unseren Vorstellungen umgesetzt werden.

So besteht weiterhin bezüglich Schaltungsaufbau und dem mechanischen Teil der Aufgabe noch Raum für Verbesserungen.

Abschließend lässt sich jedoch sagen, dass uns die Aufgabe der Studienarbeit sehr viel Spaß gemacht hat, auch wenn wir uns mit der Implementierung eines Mikrocontrollers vom Aufwand her gesehen wohl etwas übernommen haben. Wir haben jedoch gerade in diesem Bereich, vor allem aber in der Programmierung von Mikrocontrollern eine Menge dazugelernt, was uns in unserem weiteren Berufsleben viel nützen wird.

Dass uns aus diesem Grund die Zeit zur optimalen Umsetzung der Aufgabe gefehlt hat bitten wir zu berücksichtigen. Unser Hauptziel war daher am Ende einen Schaltungsaufbau zu präsentieren, der auch funktioniert.

Den Anwendungsbereich unserer Einheit sehen wir vor allem im häuslichen Bereich zu täglichen Pulsmessung. Ein weiterer Bereich wäre der Einsatz in Kliniken zur Pulsüberwachung  nach einer Operation.

Würde man die Schaltung in SMD – Technik, mit einer LCD - Anzeige und mit speziell dafür angefertigten Chips (z.B. ASIC) aufbauen, könnte man sich auch die Benutzung beim Sport vorstellen. Das Gerät könnte dann als Massenprodukt auf den Markt gebracht werden.

Falls die Schaltung als Sportgerät benutzt werden würde, wäre eine Signalübertragung via Funk wünschenswert, um den Anwender vor lästigen Kabeln zu bewahren.

 

 

12   Danksagung

Am Ende des Berichts möchten wir uns ganz herzlich bei Herrn Prof. Dipl.-Phys. Dipl.-Ing. Edmund R. Schießle für die Betreuung während der Bearbeitung der sehr interessanten Studienarbeit bedanken.

Es wurde uns ermöglicht selbstständig zu arbeiten, unsere Kenntnisse und Fertigkeiten in den Bereichen Elektronik und Programmierung zu erweitern und zu festigen.

Weiterer Dank gilt Herrn Dipl. Ing. M. Holst, der uns bei offenen Fragen rund um die Programmierung des Mikrocontrollers zur Seite stand.

 

 

Aalen, 14. Juni 2004

 

 

 

 

_______________________                                          _______________________

 

            Matthias Adam                                                                    Matthias Bross

 

 

Anlage A :                Gesamtschaltplan

 


Anlage B :                Bauteileliste

 

Nr.

 

Benennung

Bauteilbezeichnung

Herstellerbezeichnung / Gehäuse

Wert

1

R1

Metallfilm-Widerstand 0,6 Watt

axial

300 V

2

R2

Metallfilmwiderstand ¼ Watt

axial

33 kV

3

R3

Metallfilmwiderstand ¼ Watt

axial

1 MV

4

R4

Metallfilmwiderstand ¼ Watt

axial

10 kV

5

R5

Metallfilmwiderstand ¼ Watt

axial

10 kV

6

R6

Metallfilmwiderstand ¼ Watt

axial

1,5 kV

7

R7

Metallfilmwiderstand ¼ Watt

axial

2,2 kV

8

R8

Metallfilmwiderstand ¼ Watt

axial

22 kV

9

R9

Metallfilmwiderstand ¼ Watt

axial

120 V

10

R10

Metallfilmwiderstand ¼ Watt

axial

220 V

11

R11

Metallfilmwiderstand ¼ Watt

axial    

47 kV

12

R12

Metallfilmwiderstand ¼ Watt

axial

1 kV

13

R13

Metallfilmwiderstand ¼ Watt

axial

20 kV

14

R14

Metallfilmwiderstand ¼ Watt

axial

10 kV

15

R15

Metallfilmwiderstand ¼ Watt

axial

100 kV

16

R16

Metallfilmwiderstand ¼ Watt

axial

1 kV

17

R17

Metallfilmwiderstand ¼ Watt

axial

1 kV

18

R18

Metallfilmwiderstand ¼ Watt

axial

10 kV

19

R19

Metallfilmwiderstand ¼ Watt

axial

10 kV

20

C1

Keramik-Kondensator ungepolt

 

6,8 nF

21

C2

Keramik-Kondensator ungepolt

 

100 nF

22

C3

Elektrolytkondensator gepolt

radial

10 uF

23

C4

Elektrolytkondensator gepolt

radial

100 uF

24

C5

Elektrolytkondensator gepolt

radial

10 uF

25

C6

Elektrolytkondensator gepolt

radial

47 uF

26

C7

Keramik-Kondensator ungepolt

 

100 nF

27

C8

Keramik-Kondensator ungepolt

 

100 nF

28

C9

Keramik-Kondensator ungepolt

 

22 pF

29

C10

Keramik-Kondensator ungepolt

 

22 pF

30

C11

Tantalkondensator gepolt

tropfenförmig

100 nF

31

C12

Tantalkondensator gepolt

tropfenförmig

100 nF

32

C13

Tantalkondensator gepolt

tropfenförmig

100 nF

33

C14

Tantalkondensator gepolt

tropfenförmig

100 nF

34

C15

Tantalkondensator gepolt

tropfenförmig

100 nF

35

C16

Keramik-Kondensator ungepolt

 

100 nF

36

C17

Elektrolytkondensator gepolt

radial

47 uF

37

D1

Diode

1N4148

 

38

D2

Zenerdiode

BZX 79-C4V7

 

39

D3

Leuchtdiode rot

Low current, 5mm

 

40

D4

Leuchtdiode rot

superhell

 

41

D5

7-Segment-Anzeige gem. K

SC52-11SRWA

 

42

D6

7-Segment-Anzeige gem. K

SC52-11SRWA

 

43

D7

7-Segment-Anzeige gem. K

SC52-11SRWA

 

44

Q1

Quarz

 

6MHz

45

Q2

Transistor NPN

BC548

 

46

Q3

Fototransistor

BPW 40

 

47

U1

4-fach Operationsverstärker

LM 741

 

48

U2

4-fach Operationsverstärker

LM 741

 

Nr.

 

Benennung

Bauteilbezeichnung

Herstellerbezeichnung / Gehäuse

Wert

49

U3

Schieberegister

CD4094BE

 

50

U4

Schieberegister

CD4094BE

 

51

U5

Schieberegister

CD4094BE

 

52

U6

Serieller Schnittstellentreiber

MAX 232

 

53

U7

Mikrocontroller Atmel

AT89C51RB2

 

54

J1

Schraubklemme 3-polig

 

 

55

J2

Schraugklemme 4-polig

 

 

56

J3

D-SUB Stecker gew., 9-polig

 

 

57

 

Europlatine 160 x 100mm

 

 

 

 


Anlage C :                Oszilloskopbilder

 

 

 

 

Das Oszilloskopbild zeigt auf Kanal 1 den Pulschlag, aufgenommen nachdem das Signal den Tschebyscheff – Tiefpass 4. Ornung und den invertierenden Verstärker am Ende der Teilschaltung „Pulsabnehmer“ passiert hat.

Auf Kanal 2 ist das zugehörige Signal nach dem Schmitt – Trigger dargestellt, der aus dem Impulssignal ein Rechtecksignal formt.

 

Die angegebenen Spannungsbereiche sind jedoch um den Faktor 10 zu klein, da die Signale mit einem Tastkopf aufgenommen wurden, der ein Teilerverhältnis von 10:1 hat. Das von uns benutzte Oszilloskop erkennt diese Tastköpfe nicht automatisch, und so kommt die Abweichung zu stande.


 Anlage C :               Oszilloskopbilder

 

 

 

 

Dieses Oszilloskopbild zeigt die gleichen Signale wie im Beispiel zuvor. Der Unterschied liegt in der Pulsfrequenz der Person und der aufgenommenen Signalform.

 

Die Signalform ist von Testperson zu Testperson unterschiedlich.


Anlage D :                                                                                         Quelltext des Programms

 



 


 



 


Anlage E :                Layout   Bestückungsseite / Lötseite

 

 

 


Anlage E :                Bestückungsplan

 

 

 

 

 

In den Layouts für die Bestückungsseite und die Lötseite sind nur die Leiterbahnen für die Verbindungen der einzelnen Bauteile zu sehen. Es wurde jedoch jeder freie Platz mit einer Kupferschicht bedeckt, die das Potential GND hat. So ist die Schaltung vor Störeinflüssen besser geschützt.

 

Anlage F :                Zeichnung der Fingerklammer

 

 

Dies war der erste Entwurf einer Fingerklammer, in der der Fototransistor und die Leuchtdiode von unten in einem Winkel von 708 befestigt sind.

Die Anordnung war für die Reflexlichtmethode bestimmt.

Die Fixierung der Klammer am Finger wird durch ein Gummiband mit Klettverschluss realisiert, das seitlich durch die Langlöcher geführt wird.

Testreihen mit verschiedenen Versuchspersonen haben jedoch gezeigt, dass die Durchlichtmethode am kleinen Finger allgemein am besten funktioniert. Bei manchen Personen konnte mit der Reflexmethode überhaupt kein Puls festgestellt werden.

Aus diesem Grund haben wir uns schließlich für die Durchlichtmethode entschieden. Der Halter für diese Methode wird durch eine handelsübliche Aktenklammer realisiert, die nahezu in jedem Schreibwarengeschäft erhältlich ist. Die Diode und der Fototransistor werden durch zwei gegenüberliegende Bohrungen aufgenommen.